home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / lib / python2.6 / json / tool.py < prev    next >
Text File  |  2009-11-02  |  877b  |  38 lines

  1. r"""Command-line tool to validate and pretty-print JSON
  2.  
  3. Usage::
  4.  
  5.     $ echo '{"json":"obj"}' | python -mjson.tool
  6.     {
  7.         "json": "obj"
  8.     }
  9.     $ echo '{ 1.2:3.4}' | python -mjson.tool
  10.     Expecting property name: line 1 column 2 (char 2)
  11.  
  12. """
  13. import sys
  14. import json
  15.  
  16. def main():
  17.     if len(sys.argv) == 1:
  18.         infile = sys.stdin
  19.         outfile = sys.stdout
  20.     elif len(sys.argv) == 2:
  21.         infile = open(sys.argv[1], 'rb')
  22.         outfile = sys.stdout
  23.     elif len(sys.argv) == 3:
  24.         infile = open(sys.argv[1], 'rb')
  25.         outfile = open(sys.argv[2], 'wb')
  26.     else:
  27.         raise SystemExit("{0} [infile [outfile]]".format(sys.argv[0]))
  28.     try:
  29.         obj = json.load(infile)
  30.     except ValueError, e:
  31.         raise SystemExit(e)
  32.     json.dump(obj, outfile, sort_keys=True, indent=4)
  33.     outfile.write('\n')
  34.  
  35.  
  36. if __name__ == '__main__':
  37.     main()
  38.